#pragma once
#include <string>
#include <vector>
using namespace std;

class Election
{
	string name_;
	vector<string> candidates_;
protected:
	Election(string name, vector<string> candidates) { name_ = name; candidates_ = candidates; };
public:	
	~Election(void) {};
	virtual string GetLevel() = 0;
	virtual bool CanVote(string state, string local) = 0;
	virtual bool IsDirect() = 0;
	string GetName() { return name_; };
	vector<string> GetCandidates() { return candidates_; };
};